# IsPalindrome.py
# Palindrome a kind of special string
# "aba" is a palindrome
# "11211" is also a palindrome
# ["1", "1", "2", "1", "1"]

def isPalindrome(string):
  # The string is another kind of list.
  l = 0
  r = len(string) - 1

  while l < r:
    if string[l] != string[r]:
      return False
    
    l += 1
    r -= 1
  
  return True

# "1 1 2 2 1 1"
#    ^L
#          ^R

# case 1：只要 L 可以等于 R，那么一定是回文
# case 2: 只要 L 大于 R，那么一定是回文
# TC：只要 L >= R，就一定是回文

# 如果 L 和 R 上的字符相同的话，
#    如果 它们之间的字符串是回文，那么 L 和 R 所谓代表的整个字符串就是回文
def is_palindrome_rev(string, l = 0):
  r = len(string) - 1 - l
  #return True if l >= r else (string[l] == string[r] and is_palindrome_rev(string, i + 1))

  if l >= r:
    return True
  else:
    return string[l] == string[r] and is_palindrome_rev(string, i + 1)


